///*
// * 描          述:  <描述>
// * 修  改   人:  PengQingyang
// * 修改时间:  2022年4月14日
// * <修改描述:>
// */
//package com.tx.component.sendsms.dao.mybatishandler;
//
//import java.sql.CallableStatement;
//import java.sql.PreparedStatement;
//import java.sql.ResultSet;
//import java.sql.SQLException;
//import java.util.Map;
//
//import org.apache.commons.collections4.map.HashedMap;
//import org.apache.commons.lang3.StringUtils;
//import org.apache.ibatis.executor.result.ResultMapException;
//import org.apache.ibatis.type.JdbcType;
//import org.apache.ibatis.type.MappedTypes;
//import org.apache.ibatis.type.TypeHandler;
//
//import com.tx.component.sendsms.model.SmsTemplateCode;
//import com.tx.core.util.JdbcUtils;
//
///**
// * 第三方账户类型类型处理器<br/>
// * <功能详细描述>
// * 
// * @author  PengQingyang
// * @version  [版本号, 2022年4月14日]
// * @see  [相关类/方法]
// * @since  [产品/模块版本]
// */
//@MappedTypes(value = { SmsTemplateCode.class })
//public class TypeHandler4SmsTemplateCode
//        implements TypeHandler<SmsTemplateCode> {
//    
//    public final static Map<String, SmsTemplateCode> SMS_TEMPLATE_CODE_MAP = new HashedMap<>();
//    
//    /**
//     * @param ps
//     * @param i
//     * @param parameter
//     * @param jdbcType
//     * @throws SQLException
//     */
//    @Override
//    public void setParameter(PreparedStatement ps, int i,
//            SmsTemplateCode parameter, JdbcType jdbcType) throws SQLException {
//        if (parameter == null
//                && (jdbcType == null || JdbcType.OTHER == jdbcType)) {
//            ps.setNull(i, JdbcUtils.getSqlTypeByJavaType(String.class));
//        } else {
//            if (StringUtils.isEmpty(parameter.getCode())) {
//                ps.setNull(i, JdbcUtils.getSqlTypeByJavaType(String.class));
//            } else {
//                ps.setString(i, parameter.getCode());
//            }
//        }
//    }
//    
//    /**
//     * @param rs
//     * @param columnName
//     * @return
//     * @throws SQLException
//     */
//    @Override
//    public SmsTemplateCode getResult(ResultSet rs, String columnName)
//            throws SQLException {
//        try {
//            String result = rs.getString(columnName);
//            if (StringUtils.isEmpty(result)) {
//                return null;
//            } else {
//                SmsTemplateCode stc = SMS_TEMPLATE_CODE_MAP.get(result);
//                if (stc == null) {
//                    return null;
//                } else {
//                    return stc;
//                }
//            }
//        } catch (Exception e) {
//            throw new ResultMapException("Error attempting to get column '"
//                    + columnName + "' from result set.  Cause: " + e, e);
//        }
//    }
//    
//    /**
//     * @param rs
//     * @param columnIndex
//     * @return
//     * @throws SQLException
//     */
//    @Override
//    public SmsTemplateCode getResult(ResultSet rs, int columnIndex)
//            throws SQLException {
//        try {
//            String result = rs.getString(columnIndex);
//            if (StringUtils.isEmpty(result)) {
//                return null;
//            } else {
//                SmsTemplateCode stc = SMS_TEMPLATE_CODE_MAP.get(result);
//                if (stc == null) {
//                    return null;
//                } else {
//                    return stc;
//                }
//            }
//        } catch (Exception e) {
//            throw new ResultMapException("Error attempting to get column #"
//                    + columnIndex + " from result set.  Cause: " + e, e);
//        }
//    }
//    
//    /**
//     * @param cs
//     * @param columnIndex
//     * @return
//     * @throws SQLException
//     */
//    @Override
//    public SmsTemplateCode getResult(CallableStatement cs, int columnIndex)
//            throws SQLException {
//        try {
//            String result = cs.getString(columnIndex);
//            if (StringUtils.isEmpty(result)) {
//                return null;
//            } else {
//                SmsTemplateCode stc = SMS_TEMPLATE_CODE_MAP.get(result);
//                if (stc == null) {
//                    return null;
//                } else {
//                    return stc;
//                }
//            }
//        } catch (Exception e) {
//            throw new ResultMapException("Error attempting to get column #"
//                    + columnIndex + " from callable statement.  Cause: " + e,
//                    e);
//        }
//    }
//    
//}
